#include "mainwindow.h"
#include <QApplication>

/** \mainpage Projekt "Sudoku Sudo"
*
*       <b>Regeln</b><br/>
*	Sudoku ist ein leicht zu lernendes, sprachunabhaengiges Logikraetsel mit
*	hohem Suchtfaktor, das die Welt vor einiger Zeit im Sturm erobert hat.
*	Es sind keine mathematischen Faehigkeiten erforderlich, sondern lediglich
*	reines logisches Denken. Sudokus bieten endlosen Spass sowie intelligente
*	Unterhaltung fur Raetselfreunde jedes Alters.
*	<br/><br/>
*	Das Spielfeld in Sudoku besteht aus neun senkrechten und neun waagerechten
*	Reihen. Somit bildet das Feld ein Quadrat mit 81 Feldern. Dieses Quadrat
*	ist nun nochmals in neun weitere gleichgrosse Quadrate unterteilt, sodass
*	jedes kleinere Quadrat seine eigenen neun Felder erhaelt. Diese Felder
*	werden jetzt mit Hilfe eines Algorithmus mit Zahlen von 1-9 gefuellt,
*	wobei jede Zahl jeweils nur einmal in einer waagerechten und einer
*	senkrechten Reihe, sowie einmal in einem kleinerem 3x3 Quadrat vorkommen darf.
*   <br/><br/>
*	Je nach Schwierigkeitsgrad wird durch 'Auswuerfeln' eine Anzahl Ziffern
*	wieder entfernt. Der Spieler hat nun die Aufgabe die Zahlen richtig einzutragen.
*	Es liegt am Spieler, ob er nach Logik, durch das Probieren oder
*	nach einer Kombination aus beiden Methoden vorgehen moechte. Es gibt
*	allerdings nur eine richtige Loesung.
*   <br/><br/>
*	<b>Spiel starten</b><br/>
*	Durch den Doppelklick auf den Button 'Sudo' wird das Spiel gestartet.
*	Es erscheint ein leeres Feld, bei dem alle Eingabefelder und alle  Buttons
*	deaktiviert sind und der Timer auf null gesetzt ist.
*	<br/><br/>
*	<b>Neues Spiel</b><br/>
*	Der Spieler startet ueber File->New ein neues Spiel. Daraufhin wird ein neues
*	Feld generiert und je nach Schwierigkeitsgrad wird eine Anzahl von Ziffern
*	aufgedeckt. Um nun Zahlenwerte in die leeren Felder eingeben zu koennen,
*	muss der Spieler auf das Feld klicken und eine Zahl mit Hilfe der Tastatur
*	eingeben. Die Ziffer '0', Buchstaben und sonstige Zeichen sind nicht gueltig.
*   <br/><br/>
*	<b>"Timer"</b><br/>
*	Der Timer befindet sich in der Mitte ueber dem Sudokuspielfeld.
*	Bei einem neuen Spiel wird dieser aktiviert und die Zeit laeuft. Wenn man
*	waehrend dem Spiel den Button 'Pause' betaettigt, wird der Timer gestoppt und
*	die Zeit laeuft erst dann weiter, wenn der Spieler das Spiel fortsetzt.
*	So ist es auch, wenn das Spiel beendet wird, bleibt der Timer stehen und
*	man erfaehrt, wie lange man fuer diese Partie an Zeit beansprucht hat.
*   <br/><br/>
*	<b>"Help"-Button</b><br/>
*	Der "Help"-Button ist in der Mitte unterhalb des Spielfeldes zu finden. Diese
*	Funktion ermoeglicht es waehrend dem Spiel einen Tipp zu bekommen, wenn man nicht
*	weiterkommt.
*   <br/><br/>
*	<b>"Check"-Button</b><br/>
*	Dieser Button befindet sich rechts unterhalb des Spielfeldes. Ein Klick darauf,
*	enthuellt ob die vom Spieler eingetragenen Zahlen richtig oder falsch sind.
*	Diese werden entweder in Gruen (fuer richtig) oder in Rot (fuer falsch) dargestellt.
*   <br/><br/>
*	<b>"Pause"-Button</b><br/>
*	Dieser Button befindet sich links unterhalb des Spielfeldes. Ein Klick darauf
*	sorgt dafuer, dass der Timer stehen bleibt und das Spiel pausiert.
*	Es ist auch nicht mehr moeglich Aenderungen am Spielfeld vorzunehmen,
*	da es komplett ausgeblendet wird. Ein Klick auf "Resume" fuehrt das
*	Spiel wieder fort.
*   <br/><br/>
*	<b>Schwierigkeit aendern</b><br/>
*	Das Spiel hat drei Schwierigkeitstufen, die man unter Edit->Level, bevor das Spiel
*	gestartet wird, auswaehlen kann. Je hoeher der Schwierigkeitsgrad, desto
*	weniger Felder werden zu Beginn aufgedeckt.
*   <br/><br/>
*	<b>Solve</b><br/>
*	Mit File->Solve wird das am Spielanfang erzeugtes, eindeutig loesbares Sudoku
*	aufgedeckt.
*   <br/><br/>
*   <hr>
*
* \brief Das Hauptprogramm wird gestartet
*
*       Die Sudoku-Applikation wird erzeugt und ausgefuehrt
*
*
* \return Die Anwendung wird ausgefuehrt
*
* \param argc wird der Anwendung uebergegeben.
*
* \param argv wird der Anwendung uebergegeben.
*
* \author   Olexandr Shamray
*
* \version 2.0
*
* \date 16.03.2013
*/

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    
    return a.exec();
}
